home *** CD-ROM | disk | FTP | other *** search
/ Champak 141 / (Vol 141) Oct 17 2011.iso / Games / Clueless.swf / scripts / Profile.as < prev    next >
Encoding:
Text File  |  2011-10-17  |  17.7 KB  |  659 lines

  1. package
  2. {
  3.    import Forms.DressupResultForm;
  4.    
  5.    public class Profile
  6.    {
  7.       
  8.       public static const kTutorial_PowerupUpReshuffle:int = 8;
  9.       
  10.       public static const kTutorial_PowerupUpPoseLineup:int = 32;
  11.       
  12.       public static var ProfileList:Array = new Array();
  13.       
  14.       public static var Cheat:Boolean = false;
  15.       
  16.       public static const kTutorial_FashionStyle:int = 1024;
  17.       
  18.       public static var CurrentProfile:Profile = null;
  19.       
  20.       public static const kTutorial_BoyfriendPopup:int = 2048;
  21.       
  22.       public static const kTutorial_Concave:int = 128;
  23.       
  24.       public static const kTutorial_PowerupUpDoubleDamage:int = 64;
  25.       
  26.       public static const kTutorial_DressupMask:int = 4;
  27.       
  28.       public static const kTutorial_PowerupUpAddTime:int = 16;
  29.       
  30.       public static const MAX_CLOTHES:int = 2000;
  31.       
  32.       public static const kTutorial_MapMask:int = 1;
  33.       
  34.       public static const kTutorial_LevelSelectorDisabled:int = 8192;
  35.       
  36.       public static const kTutorial_TipsMask:int = 2;
  37.       
  38.       public static const kTutorial_LevelSelectorEnabled:int = 4096;
  39.       
  40.       public static const kTutorial_MapPress:int = 512;
  41.       
  42.       public static const kTutorial_Honors:int = 256;
  43.        
  44.       
  45.       public var Average_A:int = 0;
  46.       
  47.       public var TutorialMask:int = 0;
  48.       
  49.       public var LevelScore:int;
  50.       
  51.       public var PowerupsUsed:int = 0;
  52.       
  53.       public var TotalTime:int;
  54.       
  55.       public var BestLevelScore:Array;
  56.       
  57.       public var Average_B:int = 0;
  58.       
  59.       public var Average_C:int = 0;
  60.       
  61.       public var SkipTutorial:Boolean = false;
  62.       
  63.       public var LastTime:int;
  64.       
  65.       public var LastRanking:int;
  66.       
  67.       public var Name:String;
  68.       
  69.       public var bRestartgame:int = 0;
  70.       
  71.       public var Achievements:PairDatabase;
  72.       
  73.       public var UnlockedClothes:String;
  74.       
  75.       public var Ending:int = 0;
  76.       
  77.       public var UnlockedLevels:Array;
  78.       
  79.       public var BestLevelGrade:Array;
  80.       
  81.       public var bTutorial:int = 0;
  82.       
  83.       public var MapPressTutorial:Boolean = false;
  84.       
  85.       public var Affinities:PairDatabase;
  86.       
  87.       public var CuttingEdge:int = 0;
  88.       
  89.       public var LastLevel:int;
  90.       
  91.       public var Impress:int = 0;
  92.       
  93.       public function Profile()
  94.       {
  95.          TutorialMask = 0;
  96.          PowerupsUsed = 0;
  97.          MapPressTutorial = false;
  98.          SkipTutorial = false;
  99.          UnlockedLevels = new Array();
  100.          BestLevelScore = new Array();
  101.          BestLevelGrade = new Array();
  102.          Affinities = new PairDatabase();
  103.          Achievements = new PairDatabase();
  104.          Ending = 0;
  105.          bTutorial = 0;
  106.          bRestartgame = 0;
  107.          Impress = 0;
  108.          Average_A = 0;
  109.          Average_B = 0;
  110.          Average_C = 0;
  111.          CuttingEdge = 0;
  112.          super();
  113.          resetCurrentProfile();
  114.       }
  115.       
  116.       public static function getProfile(param1:String) : Profile
  117.       {
  118.          var _loc2_:Profile = null;
  119.          for each(_loc2_ in ProfileList)
  120.          {
  121.             if(_loc2_.Name == param1)
  122.             {
  123.                return _loc2_;
  124.             }
  125.          }
  126.          return null;
  127.       }
  128.       
  129.       public function save() : Array
  130.       {
  131.          var _loc1_:Array = null;
  132.          var _loc2_:int = 0;
  133.          var _loc3_:int = 0;
  134.          var _loc4_:Number = NaN;
  135.          var _loc5_:String = null;
  136.          var _loc6_:String = null;
  137.          _loc1_ = new Array();
  138.          _loc2_ = int(UnlockedLevels.length);
  139.          _loc3_ = 0;
  140.          while(_loc3_ < _loc2_)
  141.          {
  142.             _loc4_ = BestLevelScore[_loc3_] as Number;
  143.             _loc5_ = BestLevelGrade[_loc3_] as String;
  144.             _loc1_.push(_loc4_);
  145.             _loc1_.push(_loc5_);
  146.             _loc3_++;
  147.          }
  148.          _loc1_.push(CuttingEdge);
  149.          _loc1_.push(Average_C);
  150.          _loc1_.push(Average_B);
  151.          _loc1_.push(Average_A);
  152.          _loc1_.push(Impress);
  153.          _loc1_.push(bRestartgame);
  154.          _loc1_.push(bTutorial);
  155.          _loc1_.push(PowerupsUsed);
  156.          _loc1_.push(TotalTime);
  157.          _loc1_.push(LastLevel);
  158.          Achievements.clear();
  159.          _loc1_.push(Achievements.save());
  160.          Affinities.clear();
  161.          _loc1_.push(Affinities.save());
  162.          _loc1_.push(TutorialMask);
  163.          _loc1_.push(LevelScore);
  164.          _loc1_.push(UnlockedClothes);
  165.          _loc1_.push(TotalScore);
  166.          _loc1_.push(LastTime);
  167.          _loc1_.push(LastRanking);
  168.          _loc3_ = 0;
  169.          while(_loc3_ < _loc2_)
  170.          {
  171.             _loc6_ = UnlockedLevels[_loc3_] as String;
  172.             _loc1_.push(_loc6_);
  173.             _loc3_++;
  174.          }
  175.          _loc1_.push(UnlockedLevels.length);
  176.          _loc1_.push(Name);
  177.          return _loc1_;
  178.       }
  179.       
  180.       public function setGradeAndScoreForLevel(param1:String, param2:Number, param3:String) : void
  181.       {
  182.          var _loc4_:int = 0;
  183.          var _loc5_:String = null;
  184.          var _loc6_:Number = NaN;
  185.          if((_loc4_ = getUnlockedLevelIndex(param1)) >= 0)
  186.          {
  187.             _loc5_ = BestLevelGrade[_loc4_] as String;
  188.             _loc6_ = BestLevelScore[_loc4_] as Number;
  189.             if(DressupResultForm.getLetterScore(param3) > DressupResultForm.getLetterScore(_loc5_))
  190.             {
  191.                _loc5_ = param3;
  192.             }
  193.             if(param2 > _loc6_)
  194.             {
  195.                _loc6_ = param2;
  196.             }
  197.             BestLevelGrade[_loc4_] = _loc5_;
  198.             BestLevelScore[_loc4_] = _loc6_;
  199.          }
  200.       }
  201.       
  202.       public function set TotalScore(param1:int) : void
  203.       {
  204.       }
  205.       
  206.       public function getLevelForStore(param1:String) : String
  207.       {
  208.          var _loc2_:String = null;
  209.          var _loc3_:Level = null;
  210.          var _loc4_:Level = null;
  211.          for each(_loc2_ in UnlockedLevels)
  212.          {
  213.             _loc3_ = Database.getInstance().getLevel(_loc2_);
  214.             if(_loc3_ != null)
  215.             {
  216.                if(_loc3_.Store == param1)
  217.                {
  218.                   if(isLevelUnlocked(_loc3_.Name))
  219.                   {
  220.                      if(!isLevelUnlocked(_loc3_.Next))
  221.                      {
  222.                         return _loc3_.Name;
  223.                      }
  224.                      if((_loc4_ = Database.getInstance().getLevel(_loc3_.Next)) == null)
  225.                      {
  226.                         return _loc3_.Name;
  227.                      }
  228.                      if(_loc4_.Store != _loc3_.Store)
  229.                      {
  230.                         return _loc3_.Name;
  231.                      }
  232.                   }
  233.                }
  234.             }
  235.          }
  236.          return "";
  237.       }
  238.       
  239.       public function resetCurrentProfile() : void
  240.       {
  241.          var _loc1_:int = 0;
  242.          UnlockedLevels = new Array();
  243.          BestLevelGrade = new Array();
  244.          BestLevelScore = new Array();
  245.          bTutorial = 0;
  246.          unlockLevel("Tutorial");
  247.          Affinities.clear();
  248.          LastRanking = 0;
  249.          LastTime = 0;
  250.          TotalScore = 0;
  251.          TotalTime = 0;
  252.          LevelScore = 0;
  253.          LastLevel = 0;
  254.          PowerupsUsed = 0;
  255.          bRestartgame = 0;
  256.          UnlockedClothes = "";
  257.          _loc1_ = 0;
  258.          while(_loc1_ < MAX_CLOTHES)
  259.          {
  260.             UnlockedClothes += "0";
  261.             _loc1_++;
  262.          }
  263.       }
  264.       
  265.       public function isAchievementUnlocked(param1:String) : Boolean
  266.       {
  267.          return Achievements.getPairCounter(param1,"Unlocked") > 0;
  268.       }
  269.       
  270.       public function unlockLevel(param1:String) : void
  271.       {
  272.          if(!isLevelUnlocked(param1))
  273.          {
  274.             UnlockedLevels.push(param1);
  275.             BestLevelGrade.push("F");
  276.             BestLevelScore.push(0);
  277.          }
  278.       }
  279.       
  280.       public function isStoreComplete(param1:String) : Boolean
  281.       {
  282.          var _loc2_:Level = null;
  283.          if(isStoreUnlocked(param1))
  284.          {
  285.             for each(_loc2_ in Database.getInstance().Levels)
  286.             {
  287.                if(!isLevelUnlocked(_loc2_.Next) && _loc2_.Store == param1)
  288.                {
  289.                   return false;
  290.                }
  291.             }
  292.             return true;
  293.          }
  294.          return false;
  295.       }
  296.       
  297.       public function incrementA() : int
  298.       {
  299.          if(Average_A > 25)
  300.          {
  301.             return Average_A;
  302.          }
  303.          ++Average_A;
  304.          return Average_A;
  305.       }
  306.       
  307.       public function incrementImpress() : int
  308.       {
  309.          if(Impress > 50)
  310.          {
  311.             return Impress;
  312.          }
  313.          ++Impress;
  314.          return Impress;
  315.       }
  316.       
  317.       public function getLevelPrefixForStore(param1:String) : String
  318.       {
  319.          var _loc2_:String = null;
  320.          var _loc3_:Level = null;
  321.          for each(_loc2_ in UnlockedLevels)
  322.          {
  323.             _loc3_ = Database.getInstance().getLevel(_loc2_);
  324.             if(_loc3_.Store == param1)
  325.             {
  326.                if(_loc3_.Name.indexOf("Level") == 0)
  327.                {
  328.                   return _loc3_.Name.substr(0,_loc3_.Name.indexOf("-"));
  329.                }
  330.             }
  331.          }
  332.          return "";
  333.       }
  334.       
  335.       public function incrementC() : int
  336.       {
  337.          if(Average_C > 3)
  338.          {
  339.             return Average_C;
  340.          }
  341.          ++Average_C;
  342.          return Average_C;
  343.       }
  344.       
  345.       public function getBestScoreForLevel(param1:String) : Number
  346.       {
  347.          var _loc2_:int = 0;
  348.          _loc2_ = getUnlockedLevelIndex(param1);
  349.          if(_loc2_ >= 0)
  350.          {
  351.             return BestLevelScore[_loc2_] as Number;
  352.          }
  353.          return 0;
  354.       }
  355.       
  356.       public function get TotalScore() : int
  357.       {
  358.          var _loc1_:Number = NaN;
  359.          var _loc2_:Number = NaN;
  360.          _loc1_ = 0;
  361.          for each(_loc2_ in BestLevelScore)
  362.          {
  363.             _loc1_ += _loc2_;
  364.          }
  365.          return _loc1_ as int;
  366.       }
  367.       
  368.       public function incrementB() : int
  369.       {
  370.          if(Average_B > 3)
  371.          {
  372.             return Average_B;
  373.          }
  374.          ++Average_B;
  375.          return Average_B;
  376.       }
  377.       
  378.       public function getLastLevel() : Level
  379.       {
  380.          var _loc1_:Level = null;
  381.          var _loc2_:String = null;
  382.          var _loc3_:String = null;
  383.          for each(_loc2_ in UnlockedLevels)
  384.          {
  385.             _loc1_ = Database.getInstance().getLevel(_loc2_);
  386.             if(_loc1_ == null)
  387.             {
  388.                return null;
  389.             }
  390.             _loc3_ = _loc1_.Next;
  391.             if(_loc3_ == "")
  392.             {
  393.                return _loc1_;
  394.             }
  395.             if(!isLevelUnlocked(_loc3_))
  396.             {
  397.                return _loc1_;
  398.             }
  399.          }
  400.          return null;
  401.       }
  402.       
  403.       public function isStoreUnlocked(param1:String) : Boolean
  404.       {
  405.          var _loc2_:String = null;
  406.          var _loc3_:Database = null;
  407.          var _loc4_:Level = null;
  408.          for each(_loc2_ in UnlockedLevels)
  409.          {
  410.             _loc3_ = Database.getInstance();
  411.             _loc4_ = _loc3_.getLevel(_loc2_);
  412.             if(_loc2_ != "" && _loc4_.Store == param1)
  413.             {
  414.                return true;
  415.             }
  416.          }
  417.          return false;
  418.       }
  419.       
  420.       protected function getUnlockedLevelIndex(param1:String) : int
  421.       {
  422.          var _loc2_:int = 0;
  423.          _loc2_ = 0;
  424.          while(_loc2_ < UnlockedLevels.length)
  425.          {
  426.             if(UnlockedLevels[_loc2_] as String == param1)
  427.             {
  428.                return _loc2_;
  429.             }
  430.             _loc2_++;
  431.          }
  432.          return -1;
  433.       }
  434.       
  435.       public function hasUnlockedClothes() : Boolean
  436.       {
  437.          var _loc1_:int = 0;
  438.          if(UnlockedClothes != null)
  439.          {
  440.             _loc1_ = 0;
  441.             while(_loc1_ < MAX_CLOTHES)
  442.             {
  443.                if(UnlockedClothes.charAt(_loc1_) != "0")
  444.                {
  445.                   return true;
  446.                }
  447.                _loc1_++;
  448.             }
  449.          }
  450.          return false;
  451.       }
  452.       
  453.       public function isItemUnlocked(param1:String) : Boolean
  454.       {
  455.          var _loc2_:int = 0;
  456.          var _loc3_:int = 0;
  457.          _loc2_ = MainDocument.Package.getTemplateIndexByName(param1);
  458.          if(_loc2_ >= 0)
  459.          {
  460.             _loc3_ = _loc2_;
  461.             return UnlockedClothes.charAt(_loc3_) != "0";
  462.          }
  463.          return false;
  464.       }
  465.       
  466.       public function load(param1:Array) : void
  467.       {
  468.          var _loc2_:int = 0;
  469.          var _loc3_:int = 0;
  470.          var _loc4_:int = 0;
  471.          var _loc5_:String = null;
  472.          var _loc6_:Number = NaN;
  473.          Name = param1.pop() as String;
  474.          _loc2_ = param1.pop() as int;
  475.          UnlockedLevels = new Array();
  476.          _loc3_ = 0;
  477.          while(_loc3_ < _loc2_)
  478.          {
  479.             UnlockedLevels.push(param1.pop() as String);
  480.             BestLevelGrade.push("");
  481.             BestLevelScore.push(0);
  482.             _loc3_++;
  483.          }
  484.          if(param1.length > 0)
  485.          {
  486.             LastRanking = param1.pop() as int;
  487.             LastTime = param1.pop() as int;
  488.             TotalScore = param1.pop() as int;
  489.          }
  490.          else
  491.          {
  492.             LastRanking = 0;
  493.             LastTime = 0;
  494.             TotalScore = 0;
  495.          }
  496.          if(param1.length > 0)
  497.          {
  498.             UnlockedClothes = param1.pop() as String;
  499.          }
  500.          UnlockedClothes = "";
  501.          _loc4_ = 0;
  502.          while(_loc4_ < MAX_CLOTHES)
  503.          {
  504.             UnlockedClothes += "0";
  505.             _loc4_++;
  506.          }
  507.          if(param1.length > 0)
  508.          {
  509.             LevelScore = param1.pop() as int;
  510.          }
  511.          LevelScore = 0;
  512.          if(param1.length > 0)
  513.          {
  514.             TutorialMask = param1.pop() as int;
  515.          }
  516.          TutorialMask = 0;
  517.          Affinities = new PairDatabase();
  518.          if(param1.length > 0)
  519.          {
  520.             Affinities.load(param1.pop() as Array);
  521.             trace("Profile : " + Name);
  522.             Affinities.dump();
  523.             Affinities.clear();
  524.          }
  525.          Achievements = new PairDatabase();
  526.          if(param1.length > 0)
  527.          {
  528.             Achievements.load(param1.pop() as Array);
  529.             Achievements.clear();
  530.          }
  531.          if(param1.length > 0)
  532.          {
  533.             LastLevel = param1.pop() as int;
  534.          }
  535.          LastLevel = 0;
  536.          if(param1.length > 0)
  537.          {
  538.             TotalTime = param1.pop() as int;
  539.          }
  540.          TotalTime = 0;
  541.          if(param1.length > 0)
  542.          {
  543.             PowerupsUsed = param1.pop() as int;
  544.          }
  545.          else
  546.          {
  547.             PowerupsUsed = 0;
  548.          }
  549.          if(param1.length > 0)
  550.          {
  551.             bTutorial = param1.pop() as int;
  552.          }
  553.          bTutorial = 0;
  554.          if(param1.length > 0)
  555.          {
  556.             bRestartgame = param1.pop() as int;
  557.          }
  558.          bRestartgame = 0;
  559.          if(param1.length > 0)
  560.          {
  561.             Impress = param1.pop() as int;
  562.          }
  563.          Impress = 0;
  564.          if(param1.length > 0)
  565.          {
  566.             Average_A = param1.pop() as int;
  567.          }
  568.          Average_A = 0;
  569.          if(param1.length > 0)
  570.          {
  571.             Average_B = param1.pop() as int;
  572.          }
  573.          Average_B = 0;
  574.          if(param1.length > 0)
  575.          {
  576.             Average_C = param1.pop() as int;
  577.          }
  578.          Average_C = 0;
  579.          if(param1.length > 0)
  580.          {
  581.             CuttingEdge = param1.pop() as int;
  582.          }
  583.          CuttingEdge = 0;
  584.          if(param1.length > 0)
  585.          {
  586.             _loc3_ = 0;
  587.             while(_loc3_ < _loc2_)
  588.             {
  589.                _loc5_ = param1.pop() as String;
  590.                _loc6_ = param1.pop() as Number;
  591.                _loc5_ = "C";
  592.                _loc6_ = 0;
  593.                BestLevelGrade[_loc3_] = _loc5_;
  594.                BestLevelScore[_loc3_] = _loc6_;
  595.                _loc3_++;
  596.             }
  597.          }
  598.          else
  599.          {
  600.             _loc3_ = 0;
  601.             while(_loc3_ < _loc2_)
  602.             {
  603.                _loc5_ = "C";
  604.                _loc6_ = 0;
  605.                BestLevelGrade[_loc3_] = _loc5_;
  606.                BestLevelScore[_loc3_] = _loc6_;
  607.                _loc3_++;
  608.             }
  609.          }
  610.       }
  611.       
  612.       public function unlockItem(param1:String) : void
  613.       {
  614.          var _loc2_:int = 0;
  615.          var _loc3_:int = 0;
  616.          _loc2_ = MainDocument.Package.getTemplateIndexByName(param1);
  617.          if(_loc2_ >= 0)
  618.          {
  619.             _loc3_ = _loc2_;
  620.             UnlockedClothes = UnlockedClothes.substr(0,_loc3_) + "1" + UnlockedClothes.substr(_loc3_ + 1);
  621.          }
  622.       }
  623.       
  624.       public function getBestGradeForLevel(param1:String) : String
  625.       {
  626.          var _loc2_:int = 0;
  627.          _loc2_ = getUnlockedLevelIndex(param1);
  628.          if(_loc2_ >= 0)
  629.          {
  630.             return BestLevelGrade[_loc2_] as String;
  631.          }
  632.          return "F";
  633.       }
  634.       
  635.       public function isLevelUnlocked(param1:String) : Boolean
  636.       {
  637.          var _loc2_:Level = null;
  638.          var _loc3_:String = null;
  639.          if(param1 == "")
  640.          {
  641.             return true;
  642.          }
  643.          _loc2_ = Database.getInstance().getLevel(param1);
  644.          if(_loc2_ == null)
  645.          {
  646.             return false;
  647.          }
  648.          for each(_loc3_ in UnlockedLevels)
  649.          {
  650.             if(_loc2_.Name == _loc3_)
  651.             {
  652.                return true;
  653.             }
  654.          }
  655.          return false;
  656.       }
  657.    }
  658. }
  659.